package com.huanf.controller;

import com.huanf.service.GroupService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author: 35238
 * 功能: 接口和实现类之间，如何分组。使用场景: 例如GroupService接口有多个实现类时
 * 时间: 2023-12-30 15:23
 */
@RestController
public class GroupController {

    //如果分组是group1，那么注入的groupService，其实实现的就是Group1ServiceImpl类的方法
    @DubboReference(group = "group1")//在yml文件配置了注册中心的话，@DubboReference就不需要加url属性
    private GroupService yygroupService;

    //如果分组是group2，那么注入的groupService，其实实现的就是Group2ServiceImpl类的方法
    @DubboReference(group = "group2")
    private GroupService xxgroupService;


    //--------------------------注入什么分组，你下面调用的就是哪个分组对应的类的方法------------------------------


    @GetMapping("/yymsg") //浏览器访问 http://localhost:8191/yymsg
    public void yymsg(){
        String result = yygroupService.group("当前访问的是: ");
        System.out.println(result);
    }

    @GetMapping("/xxmsg") //浏览器访问 http://localhost:8191/xxmsg
    public void xxmsg(){
        String result = xxgroupService.group("当前访问的是: ");
        System.out.println(result);
    }
}
